

import $constant from '@/utils/open/constant.js';
import $validate from '@/utils/custom-plugin/validate.js';

const { $UploadImg } = require('@/utils/custom-plugin/uploadImg.js');

$loading.show()
// console.log('mui', mui);


// 图片上传组件初始化
const UploadObj = new $UploadImg('#UploadImg', {
    domCls: ['pic-grid', 'publish-img-box', 'pd-t3', 'pd-b3'],
    clickEvents(e) {
        // console.log('e:', e)
        const target = e.target;
        if (target.classList.contains('pic-item')) {
            mui.previewImage(); // mui 插件
        }
    }
});

// debugger
// 链接没有带参 access_token ，并且debug=true，即属于调试阶段
if (!$constant.urlParams.access_token && $constant.debugs) {
    // console.log('*********** 测试调用')
    getPropertyAddressData();
} else {
    // console.log('*********** 正式环境调用')
    // 
    // 获取业主数据
    // let isProperty = 1; // 1.地产 2.物业 
    // appid 和 appsecret 两个参数，自助建单和历史工单不一样
    const getOwnerParams = {
        type: 'buildOrder' // type: 建单:buildOrder, 历史工单: historysOrder
        // appid: '9d04876d-140f-4f3a-b833-6802283ad08c',
        // appsecret: 'lMHptuPvGgKGiafHztP0qyyFoSqeWOyD',
    }
    $com.getOwnerData(getOwnerParams, (res) => {
        // console.log('res:', res);
        // getAddressData1();
        getOwnerBaseInfo(); // 获取慧享聚合信息
    });

}
mui.init();
mui.ready(function () {
    // 自助建单 表单提交
    mui('body').on('tap', '.confirm-btn', function () {
        let params = {
            phone: '',
            name: '',
            houseCode: '',
            content: '',
            areaName: '',
            projectName: ''
        }

        const tData = $formSeria.seria('form1'); // 获取表单值
        params = $com.copyObjComVal(params, tData.obj); // 复制对象公共属性
        params.phone = $constant.OwnerData.phone;
        params.name = $constant.OwnerData.name;
        // return
        const tipArr = {
            // name: '登陆名称', // 登陆名称
            phone: '当前业主手机号码为空，无法建单，请联系管理员！', // 手机号码
            houseCode: '请选择房产地址',
            content: '评论内容'
        }
        // 表单验证
        // debugger
        if (!$validate.validationForm(tipArr, params)) {
            return
        }

        const form = new FormData();
        for (let k in params) {
            if (k && params.hasOwnProperty(k)) {
                form.append(k, params[k])
            }
        }
        const imgList = UploadObj.getData();
        // console.log('imgList:', imgList)
        if (imgList.length > 0) {
            for (let i = 0; i < imgList.length; i++) {
                let obj = imgList[i]
                if (!obj) continue;
                let files = obj.file
                form.append('file' + i, files, obj.name)
            }
        }
        // console.log('tipArr:', tipArr)
        // console.log('params:', params)
        // console.log('form:', form)
        debugger
        $mui.confirm({ msg: '确认提交？' }, function (flag) {
            if (flag) {
                $loading.show()
                // 业主自助建单
                submitForm(form).then(res => {
                    $loading.hide()
                    $mui.toast('提交成功！')
                    setTimeout(() => {
                        jumpRouter('../../public/html/owenr-data-history.html'); // 页面跳转方法，来源 common.js
                    }, 300)
                }).catch(err => {
                    console.error('error', err)
                    $loading.hide()
                })

            }
        })
    })

});

// 地产 表单提交
function submitForm(params) {
    let urlStr = $com.obj2Str({ workNo: $constant.ManageData.workNo })
    // isProperty 1.地产 2.物业
    if ($constant.isProperty === 1) { // 地产 表单提交
        return $estateApi.buildOrder(params, urlStr);
    } else if ($constant.isProperty === 2) { // 物业 表单提交
        return $propertyApi.buildOrder(params, urlStr);
    }

}


// 获取慧享聚合信息
function getOwnerBaseInfo() {
    const params = {
        phone: $constant.OwnerData.phone
    }
    const tipArr = {
        phone: '当前业主手机号码为空，无法建单，请联系管理员！', // 手机号码
    }
    // 表单验证
    if (!$validate.validationForm(tipArr, params)) {
        return
    }
    $comApi.getExamineChangeInfos(params).then(res => {
        // console.log('---res', res);
        const addressArr = []
        const arr = (res.data && res.data.propertyInfo) || [];
        // console.log('arr:', arr);

        arr.forEach(obj => {
            obj.zt = Number(obj.zt);
            // console.log('obj:', obj);

            let houseCode = obj.build + '-' + obj.unit + '-' + obj.room;
            let address = obj.areaname + '' + obj.prjname + '' + houseCode;
            let o = {
                address: address,
                areaName: obj.areaname,
                houseCode: houseCode,
                houseState: obj.zt >= 4 ? "入住" : '不入住', // zt 房间状态：1空置(未出售)、2未领、3空关、4装修、5入住、6入伙、10可售，11已售， 12已预定，13限制房产'
                projectName: obj.prjname,
                zt: obj.zt,
                value: houseCode,
                text: address
            }
            addressArr.push(o);
        })
        // console.log('addressArr:', addressArr);
        initAddressPicker(addressArr);  // 房产地址 select 组件绑定

    })
}

// 获取测试数据-房产信息(房产地址)
function getPropertyAddressData() {
    const params = { phone: $constant.OwnerData.phone }
    const tipArr = {
        phone: '当前业主手机号码为空，无法建单，请联系管理员！', // 手机号码
    }
    // debugger
    // 表单验证
    if (!$validate.validationForm(tipArr, params)) {
        return
    }
    // let t = $comApi;
    // debugger
    $comApi.getPropertyAddressList(params).then(res => {
        const list = res.data
        initAddressPicker(list);  // 房产地址 select 组件绑定
    }).catch(err => {
        console.error('error', err)
        $loading.hide()
    })
}

// 房产地址 select 组件绑定
function initAddressPicker(list) {
    console.log('list:', list);

    list.forEach(obj => {
        obj.value = obj.houseCode
        obj.text = obj.address
    })
    // const list = pickerList
    bindSelectPicker(list, '#showUserPicker', {
        childEleName: 'input',
        defaultSelectIndex: 0,
        initFinsh(e, config) {
            e.pickers[0].setSelectedIndex(config.defaultSelectIndex); // 一级 设置默认选中值
            // console.log('initFinsh', $constant.applyTypeList[0])
            // handleTypeFn($constant.applyTypeList[config.defaultSelectIndex])
        },
        fn(item) {
            // console.log(item)
            // let num = 1;
            // if (item.zt >= 4) {
            //   num = 2;
            // }
            // isProperty: 1.地产 2.物业
            changePageTitle(null, item.zt); // 修改页面标题，并保存 isProperty，来自common.js
        }
    })
}

     // // 地址信息，需要获取两次，才能返回最后数据
    // function getAddressData1() {
    //   const params = {
    //     phone: $constant.OwnerData.phone,
    //     keyId: 'CLIENT_INFO'
    //   }
    //   const tipArr = {
    //     phone: '当前业主手机号码为空，无法建单，请联系管理员！', // 手机号码
    //   }
    //   // 表单验证
    //   if (!$validate.validationForm(tipArr, params)) {
    //     return
    //   }
    //   getUserBaseInfoData(params, res => {
    //     if (!$com.isNull(res.data)) {
    //       getAddressData2(res);

    //     }
    //   });
    // }
    // function getAddressData2(res) {
    //   // console.log('getAddressData2:', res)
    //   const params = {
    //     keyId: 'CLIENT_PROPRTY',
    //     userId: res.data.userid
    //   }
    //   getUserBaseInfoData(params, e => {
    //     const addressArr = []
    //     const arr = e.data || [];
    //     arr.forEach(obj => {
    //       obj.zt = Number(obj.zt);
    //       // console.log('obj:', obj);

    //       let houseCode = obj.build + '-' + obj.unit + '-' + obj.room;
    //       let address = obj.areaname + '' + obj.prjname + '' + houseCode;
    //       let o = {
    //         address: address,
    //         areaName: obj.areaname,
    //         houseCode: houseCode,
    //         houseState: obj.zt >= 4 ? "入住" : '不入住', // zt 房间状态：1空置(未出售)、2未领、3空关、4装修、5入住、6入伙、10可售，11已售， 12已预定，13限制房产'
    //         projectName: obj.prjname,
    //         zt: obj.zt,
    //         value: houseCode,
    //         text: address
    //       }
    //       addressArr.push(o);
    //     })
    //     // console.log('addressArr:', addressArr);
    //     initAddressPicker(addressArr);  // 房产地址 select 组件绑定

    //   });
    // }
    // // 获取用户信息
    // function getUserBaseInfoData(params, fn) {
    //   $comApi.getUserBaseInfo(params).then(res => {
    //     // console.log('res:', res);
    //     if (fn) {
    //       fn(res);
    //     }
    //   })
    // }

/**
 * 勿删！！！
 * 顶部 radio 值变更触发
 * isProperty: 1.地产 2.物业
*/
    // function radioChange(dom) {
    //   let num = 1;
    //   if (!dom) {
    //     num = $com.getSession('isProperty') || 1
    //     dom = jq('.type-radio-cls')[num - 1]
    //   }
    //   if (!dom) return

    //   num = Number(dom.value)
    //   dom.setAttribute('checked', 'checked')
    //   jq('#radioTops .arrow-icon-cls').css('left', (dom.offsetLeft - (dom.offsetWidth / 2)) + 'px')
    //   jq('#radioTops .tip-line .text').html(dom.dataset.tiptext)
    //   changePageTitle(num); // 修改页面标题
    // }
